#ifndef CAMERA_H
#define CAMERA_H
/*This code allows the camera to move, but is not directly
connected to input devices (mouse, keyboard). Callbacks use
these functions to move the viewer. */

#include <QGLWidget>
#include <math.h>
#include <QDebug>

class camera
{
public:
    //position vars
    float x, y, z;//place in world
    float roll, pitch, yaw;//direction

    bool rotating; //rotate or translate state


    camera();           //creates camera, initializes position and direction
    void moveUp();      //translate up (along camera's y axis) / pitch up
    void moveDown();    //translate down (along camera's y)    /pitch down
    void moveLeft();    //translate left along camera's x
    void moveRight();   //translate right along camera's x
    void moveForward(); //translate forward along camera's z
    void moveBack();    //translate back along camera's z
    void setUp();       //create intial camera position (back and up from origin of world)

    void applyTransform(); //Use GL funcitons to move view
    void toggleRotating(); //Change between rotate and translate

};

#endif // CAMERA_H
